The Hypertext Transfer Protocol (“HTTP”) (as defined in Internet Engineering Task Force (“IETF”) Request for Comments 2616 entitled “Hypertext Transfer Protocol—HTTP/1.1”, published June 1999) is currently a popular method of delivering content over the Internet. In many current applications, such as streaming, content is made available progressively through constant duration segments. The segment availability follows a timeline that indicates when each successive segment becomes available in the HTTP server.
Dynamic Adaptive Streaming Over Hypertext Transfer Protocol (“DASH”) is a standard that implements HTTP streaming. DASH announces the segment availability in a Media Presentation Description (“MPD”). The MPD describes the media components associated with a DASH media presentation, and declares a segment availability timeline that announces the segments, the times segments are available, and the size of the segments. To gather a segment needed to render the content, a DASH enabled application/client running on a receiver device sends an HTTP request to an HTTP server to request a segment identified in the MPD. The HTTP server responds with the requested segment or responds with an HTTP redirect message indicating another Uniform Resource Locator (“URL”) that the DASH client should use in a subsequent HTTP request for the segment. DASH allows more than one representation of each segment to be made available. For example, more than one representation of each segment may be made available by hosting a high bit rate/quality version of a segment at one location and a low bit rate/quality version of the same segment at another location. A DASH application/client may retrieve either the high bit rate/quality version or the low bit rate/quality version of the segment and render either version.